package com.huilian.iotbox.data.utils;

/**
 * 凯撒加解密
 *
 * @author chenqiwen
 * @CreateDate: 2022-04-26-19-23
 * @Description:
 */
public class KaiSaEncrypt {

    private static int key = 45619425;

    /**
     * 使用凯撒加密方式解密数据
     *
     * @param encryptedData :密文
     * @return : 源数据
     */
    public static String decryptKaiser(String encryptedData) {
        // 将字符串转为字符数组
        char[] chars = encryptedData.toCharArray();
        StringBuilder sb = new StringBuilder();
        for (char aChar : chars) {
            // 获取字符的ASCII编码
            int asciiCode = aChar;
            // 偏移数据
            asciiCode -= key;
            // 将偏移后的数据转为字符
            char result = (char) asciiCode;
            // 拼接数据
            sb.append(result);
        }
        return sb.toString();
    }

    /**
     * 使用凯撒加密方式加密数据
     *
     * @param original :原文
     * @return :加密后的数据
     */
    public static String encryptKaiser(String original) {
        // 将字符串转为字符数组
        char[] chars = original.toCharArray();
        StringBuilder sb = new StringBuilder();
        for (char aChar : chars) {
            // 获取字符的ascii编码
            int asciiCode = aChar;
            // 偏移数据
            asciiCode += key;
            // 将偏移后的数据转为字符
            char result = (char) asciiCode;
            // 拼接数据
            sb.append(result);
        }
        return sb.toString();
    }
}
